// 根渲染器的实现,需要继承该基类实现 Render
class BaseRender {
  _autoSave = false
  _state = null
  data = null
  scheme = null

  constructor(scheme, data) {
    this.scheme = scheme
    this.data = data
  }

  /**
   * 使用插件
   * @param plugin 一个接受 render 实例的函数
   */
  use(plugin) {
    console.log('use called')

    plugin(this)

    return this
  }

  render() {
    if (this._autoSave && !this._state) {
      this._state = this._load()
    }

    return this
  }

  _save() {
    if (!this._autoSave) {
      return this
    }

    return this
  }

  _load() {
    if (!this._autoSave) {
      return this
    }

    return this
  }
}

export default BaseRender
